package com.EAsystem.mapper;

import com.EAsystem.entity.Leave;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface LeaveMapper {

    // 插入请假记录
    int insertLeave(Leave leave);

    // 更新请假记录
    int updateLeave(Leave leave);

    // 根据ID删除请假记录
    int deleteLeaveById(Integer id);

    // 根据ID查询请假记录
    Leave findLeaveById(Integer id);



    // 分页查询所有请假记录
    List<Leave> findAllLeavesWithPage();

    // 根据学生ID查询请假记录
    List<Leave> findLeavesByStudentId(Integer studentId);



    // 条件查询请假记录
    List<Leave> findLeavesByCondition(Leave leave);

    // 审批请假记录
    int approveLeave(@Param("id") Integer id,
                     @Param("status") Integer status,
                     @Param("updateTime") String updateTime);

    // 根据教师ID查询请假记录
    List<Leave> findLeavesByTeacher(@Param("teacherId") Integer teacherId,
                                   @Param("courseId") Long courseId,
                                   @Param("status") Integer status);
}